body {
  width: 100vw;
  height: 100vh;
  display: grid;
  justify-content: center;
  align-content: center;
}
$width: 400px;
$height: 400px;

@mixin center {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

main {
  width: $width;
  height: $width;
  position: relative;
  border: solid 2px #ddd;
  border-radius: 50%;
  &::before {
    content: '';
    width: 10px;
    height: 10px;
    background-color: #000;
    border-radius: 50%;
    @include center();
  }
  section {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    @include center();
    div {
      width: 15px;
      height: 2px;
      background-color: #000;
      position: absolute;
      @for $i from 1 to 13 {
        &:nth-child(#{$i}) {
          transform: rotate(#{$i * 30 + 90}deg) translateX(-170px);
        }
        &:nth-child(#{$i})::after {
          content: '#{$i}';
          position: absolute;
          right: -20px;
          top: -10px;
          transform: rotate(#{360 - ($i * 30 + 90)}deg);
        }
      }
    }
  }
  aside {
    width: 100%;
    height: 100%;
    @include center();
    display: flex;
    justify-content: center;
    align-items: center;
    div {
      width: 3px;
      background-color: #000;
      position: absolute;
      transform: translateY(-50%);
      transition-duration: 1s;
      transition-timing-function: steps(60, start);
      &:nth-child(1) {
        height: 30px;
        width: 8px;
        transform: rotate(25deg) translateY(-50%);
      }
      &:nth-child(2) {
        height: 50px;
        width: 5px;
        transform: rotate(145deg) translateY(-50%);
      }
      &:nth-child(3) {
        height: 100px;
        width: 2px;
        transform: rotate(0deg) translateY(-50%);
      }
    }
  }
  &:hover > aside > div:nth-child(3) {
    transition-duration: 60s;
    transform: rotate(360deg) translateY(-50%);
  }
}
